<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/11/1
 * Time: 13:37
 */
namespace app\admin\model;

use app\common\model\_TreeBase;
use think\Db;
use think\Model;
class Authrule extends _TreeBase
{
    protected $name="authrule";
    public function authruleTree()
    {
        $authruleres=Db::table('ox_auth_rule')->field('*,pid as parent_id')->order('sort ','asc')->select();
        return $this->toFormatTree($authruleres,0,-1,'title','id', 'parent_id');
    }


    public function sort($data,$auth_pid=0)
    {
        static $arr=array();
        foreach ($data as $k => $v){
            if ($v['pid']==$auth_pid){
                $v['dataid']=$this->getparentid($v['id']);
                $arr[]=$v;
                $this->sort($data,$v['id']);
            }
        }
        return $arr;
    }
    //删除栏目以及子栏目
    public function getchildrenid($authruleid){
        $authruleres=Db::table('ox_auth_rule')->select();
        return $this->diechildrenid($authruleres,$authruleid);
    }
    //删除子栏目
    public function diechildrenid($authruleres,$authruleid){
        static $arr=array();
        foreach ($authruleres as $k => $v){
            if ($v['pid'] == $authruleid){  //某个栏目中的pid 如果等于当前要删除的id的话
                $arr[]=$v['id'];  //将栏目中的下级栏目存起来  $v['id'] 栏目中的子栏目
                $this->diechildrenid($authruleres,$v['id']);  //$v['id'] 栏目中的子栏目的子栏目
                //直到最后找不到子栏目就结束循环  所需的所有数据都放入了$arr[]中
            }
        }
        return $arr;
    }


    //删除栏目以及子栏目
    public function getparentid($authruleid){
        $authruleres=Db::table('ox_auth_rule')->select();
        return $this->dieparentid($authruleres,$authruleid,true);
    }

    //删除子栏目
    public function dieparentid($authruleres,$authruleid,$clear=false){
        static $arr=array();
        if($clear){
            $arr=array();
        }
        foreach ($authruleres as $k => $v){
            if ($v['id'] == $authruleid){  //某个栏目中的pid 如果等于当前要删除的id的话
                $arr[]=$v['id'];  //将栏目中的下级栏目存起来  $v['id'] 栏目中的子栏目
                $this->dieparentid($authruleres,$v['pid'],false);  //$v['id'] 栏目中的子栏目的子栏目
                //直到最后找不到子栏目就结束循环  所需的所有数据都放入了$arr[]中
            }
        }
        asort($arr);
        $arrStr=implode('-',$arr);
        return $arrStr;
    }

}
